import { defineStore } from "pinia";
import { ref } from "vue";
import type { userStore } from "./userStore";
import type { chatStore } from "./chatStore";
import type { friendStore } from "./friendStore";

export const useGlobalState = defineStore('globalSta', () => {

    const appMounted = ref<boolean>(false); // 标识应用是否挂载完成

    // 全局pinia store信息
    let user_store: ReturnType<typeof userStore> | null = null;

    let chat_store: ReturnType<typeof chatStore> | null = null;

    let friend_store: ReturnType<typeof friendStore> | null = null;


    function setAppMounted(value: boolean) {
        appMounted.value = value;
    }

    function setUserStore(store: ReturnType<typeof userStore>) {
        user_store = store;
    }

    function setFriendStore(store: ReturnType<typeof friendStore>) {
        friend_store = store;
    }

    function setChatStore(store: ReturnType<typeof chatStore>) {
        chat_store = store;
    }


    return {
        appMounted,
        user_store,
        friend_store,
        chat_store,
        setAppMounted,
        setUserStore,
        setFriendStore,
        setChatStore
    }

})


